Session Initiation Protocol (SIP) is an open signaling protocol for establishing many kinds of real-time communication sessions. Examples of the types of communication sessions that may be established using SIP include voice, video, and/or instant messaging. These communication sessions may be carried out on any type of communication device such as a personal computer, laptop computer, Personal Digital Assistant (PDA), cellular phone, IM client, IP phone, traditional telephone, and so on.
One key feature of SIP is its ability to use an end-user's Address of Record (AOR) as a single unifying public address for all communications. Thus, in a world of SIP-enhanced communications, a user's AOR becomes their single address that links the user to all of the communication devices associated with the user. Using this AOR, a caller can reach any one of the user's communication devices, also referred to as User Agents (UAs) without having to know each of the unique device addresses or phone numbers.
Many SIP application servers exist for the purposes of enabling communications applications in a SIP environment. One of the principle areas for such communications applications is call control of a SIP UA. Many applications require direct manipulation of call states for SIP UAs. Several call control operations easily accomplished in a PBX environment have typically proved troublesome in a SIP Back-to-Back (B2B) UA paradigm. Examples of some operations that are more difficult to implement in a SIP environment than a PBX environment include a “directionally correct” make call, answer call, hold call, and retrieve call.